{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 线性回归\n",
    "线性回归是在给定一个或者多个其他变量（数据点）的值的情况下，预测一个连续变量的值的问题。\n",
    "例如，根据房屋的占地面积，预测房屋的售价。在这个示例种，可以将已知特征以及关联的标签绘制在简单的线性图上，如x,y散点图，并在此基础上拟合为一条直线。\n",
    "然后，可以读取对应该图的x范围内的任何特征值的标签。\n",
    "\n",
    "但是，线性回归问题多数情况下涉及多个特征，我们称之为多元线性回归。这种情况下，不是一条数据的线，而是一个平面（两个特征）或一个超平面（两个特征以上）。\n",
    "备注：特征也成为预测变量或者自变量。标签也称为相应变量或因变量。"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "51c14e696b40b9cf"
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   },
   "id": "806c714fcd09e356"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 通过TensorFlow实现线性回归\n",
    "构建了一个人工数据集，我们将通过使用TensorFlow拟合这条线。\n",
    "执行以下操作，在导入和初始化之后，我们进入一个循环。再次循环内，我们计算总损失（定义为点的数据集y的均方误差）。然后，我们根据我们的权重和偏置来得出这种损失的导数，这将用于调整权重和偏差从而降低损失的值，这就是所谓的梯度下降。通过多次重复次循环，我们可以将损失降低到尽可能低的程度，并且可以使用训练好的模型进行预测。"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "d2e542760de8cc70"
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "#导入所需的模块\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-28T11:50:40.024311300Z",
     "start_time": "2024-03-28T11:50:37.948188300Z"
    }
   },
   "id": "f7e3db4f654a31e6",
   "execution_count": 23
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "#初始化重要的常量\n",
    "n_examples = 1000 # 样本个数\n",
    "training_steps = 1000 #迭代次数（梯度下降）\n",
    "display_step = 100 # 显示loss频率\n",
    "learning_rate = 0.01\n",
    "m,c = 6,-5 #"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-28T11:53:30.385452Z",
     "start_time": "2024-03-28T11:53:30.380428300Z"
    }
   },
   "id": "daf458b879ccb5bc",
   "execution_count": 25
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   },
   "id": "301a54ea4736c565"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
